﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

namespace FinalProject
{
    public class HoSo
    {
        #region Attributes
        private string _ID;

        public string ID
        {
            get { return _ID; }
            set { _ID = value; }
        }

        private DateTime _NgayCapNhat;

        public DateTime NgayCapNhat
        {
            get { return _NgayCapNhat; }
            set { _NgayCapNhat = value; }
        }
        private int _NamKinhNghiem;

        public int NamKinhNghiem
        {
            get { return _NamKinhNghiem; }
            set { _NamKinhNghiem = value; }
        }
        private List<NgoaiNgu> _LstNgoaiNgu;

        public List<NgoaiNgu> LstNgoaiNgu
        {
            get { return _LstNgoaiNgu; }
            set { _LstNgoaiNgu = value; }
        }
        private List<TrinhDoNgoaiNgu> _LstTrinhDoNgoaiNgu;

        public List<TrinhDoNgoaiNgu> LstTrinhDoNgoaiNgu
        {
            get { return _LstTrinhDoNgoaiNgu; }
            set { _LstTrinhDoNgoaiNgu = value; }
        }
        private string _ViTriMongMuon;

        public string ViTriMongMuon
        {
            get { return _ViTriMongMuon; }
            set { _ViTriMongMuon = value; }
        }
        private ChucVu _ChucVu;

        public ChucVu ChucVu
        {
            get { return _ChucVu; }
            set { _ChucVu = value; }
        }
        private List<TinhThanh> _LstNoiLamViec;

        public List<TinhThanh> LstNoiLamViec
        {
            get { return _LstNoiLamViec; }
            set { _LstNoiLamViec = value; }
        }
        private List<NganhNghe> _LstNganhNghe;

        public List<NganhNghe> LstNganhNghe
        {
            get { return _LstNganhNghe; }
            set { _LstNganhNghe = value; }
        }
        private float _MucLuong;

        public float MucLuong
        {
            get { return _MucLuong; }
            set { _MucLuong = value; }
        }
        private bool _IsChoPhepTimKiem;

        public bool IsChoPhepTimKiem
        {
            get { return _IsChoPhepTimKiem; }
            set { _IsChoPhepTimKiem = value; }
        }
        private string _MucTieuNgheNghiep;

        public string MucTieuNgheNghiep
        {
            get { return _MucTieuNgheNghiep; }
            set { _MucTieuNgheNghiep = value; }
        }
        private string _ThanhTichNoiBat ="";

        public string ThanhTichNoiBat
        {
            get { return _ThanhTichNoiBat; }
            set { _ThanhTichNoiBat = value; }
        }
        private List<KinhNghiemLamViec> _LstKinhNghiemLamViec;

        public List<KinhNghiemLamViec> LstKinhNghiemLamViec
        {
            get { return _LstKinhNghiemLamViec; }
            set { _LstKinhNghiemLamViec = value; }
        }
        private List<HocVanBangCap> _LstHocVanBangCap;

        public List<HocVanBangCap> LstHocVanBangCap
        {
            get { return _LstHocVanBangCap; }
            set { _LstHocVanBangCap = value; }
        }
        private string _KyNangNoiBat = "";

        public string KyNangNoiBat
        {
            get { return _KyNangNoiBat; }
            set { _KyNangNoiBat = value; }
        }
        private List<ThongTinThamKhao> _LstThongTinThamKhao;

        public List<ThongTinThamKhao> LstThongTinThamKhao
        {
            get { return _LstThongTinThamKhao; }
            set { _LstThongTinThamKhao = value; }
        }
        private ThongTinLienHe _ThongTinLienHe;

        public ThongTinLienHe ThongTinLienHe
        {
            get { return _ThongTinLienHe; }
            set { _ThongTinLienHe = value; }
        }
        #endregion

        public HoSo()
        {
            this._ViTriMongMuon = "";
            this._LstThongTinThamKhao = new List<ThongTinThamKhao>();
            this._ThongTinLienHe = new ThongTinLienHe();
            this._ChucVu = new ChucVu();
            this._IsChoPhepTimKiem = false;
            this._KyNangNoiBat = "";
            this._LstHocVanBangCap = new List<HocVanBangCap>();
            this._LstKinhNghiemLamViec = new List<KinhNghiemLamViec>();
            this._LstNoiLamViec = new List<TinhThanh>();
            this._LstNganhNghe = new List<NganhNghe>();
            this._LstNgoaiNgu = new List<NgoaiNgu>();
            this._LstTrinhDoNgoaiNgu = new List<TrinhDoNgoaiNgu>();
            this._MucLuong = 0;
            this._MucTieuNgheNghiep = "";
            this._NamKinhNghiem = -1;
            this._ThanhTichNoiBat = "";            
        }

        public HoSo(int namKinhNghiem, List<NgoaiNgu> lstNgoaiNgu, List<TrinhDoNgoaiNgu> lstTrinhDoNgoaiNgu, string viTriMongMuon, 
            ChucVu chucVu, List<TinhThanh> lstNoiLamViec, 
            List<NganhNghe> lstNganhNghe, float mucLuong, bool isChoPhepTimKiem, string mucTieuNgheNghiep, string thanhTichNoiBat,
            List<KinhNghiemLamViec> lstKinhNghiemLamViec, List<HocVanBangCap> lstHocVanBangCap, string kyNangNoiBat, 
            List<ThongTinThamKhao> lstThongTinThamKhao, ThongTinLienHe thongTinLienHe)
        {
            this._ChucVu = chucVu;
            this._IsChoPhepTimKiem = isChoPhepTimKiem;
            this._KyNangNoiBat = kyNangNoiBat;
            this._LstHocVanBangCap = lstHocVanBangCap;
            this._LstKinhNghiemLamViec = lstKinhNghiemLamViec;
            this._LstNoiLamViec = lstNoiLamViec;
            this._LstNganhNghe = lstNganhNghe;
            this._LstNgoaiNgu = lstNgoaiNgu;
            this._LstTrinhDoNgoaiNgu = lstTrinhDoNgoaiNgu;
            this._MucLuong = mucLuong;
            this._MucTieuNgheNghiep = mucTieuNgheNghiep;
            this._NamKinhNghiem = namKinhNghiem;
            this._ThanhTichNoiBat = thanhTichNoiBat;
            this._ThongTinLienHe = thongTinLienHe;
            this._LstThongTinThamKhao = lstThongTinThamKhao;
            this._ViTriMongMuon = viTriMongMuon;
        }

        public HoSo(int namKinhNghiem, List<NgoaiNgu> lstNgoaiNgu, List<TrinhDoNgoaiNgu> lstTrinhDoNgoaiNgu, string viTriMongMuon, 
            ChucVu chucVu, List<TinhThanh> lstNoiLamViec,
            List<NganhNghe> lstNganhNghe, float mucLuong, bool isChoPhepTimKiem)
        {
            this._ChucVu = chucVu;
            this._IsChoPhepTimKiem = isChoPhepTimKiem;            
            this._LstNoiLamViec = lstNoiLamViec;
            this._LstNganhNghe = lstNganhNghe;
            this._LstNgoaiNgu = lstNgoaiNgu;
            this._MucLuong = mucLuong;            
            this._NamKinhNghiem = namKinhNghiem;            
            this._ViTriMongMuon = viTriMongMuon;
            this._LstTrinhDoNgoaiNgu = lstTrinhDoNgoaiNgu;
        }

        public HoSo(HoSo hoSo)
        {
            this._ID = hoSo.ID;
            this._ChucVu = hoSo._ChucVu;
            this._IsChoPhepTimKiem = hoSo._IsChoPhepTimKiem;
            this._KyNangNoiBat = hoSo._KyNangNoiBat;
            this._LstHocVanBangCap = hoSo._LstHocVanBangCap;
            this._LstKinhNghiemLamViec = hoSo._LstKinhNghiemLamViec;
            this._LstNoiLamViec = hoSo._LstNoiLamViec;
            this._LstNganhNghe = hoSo._LstNganhNghe;
            this._LstNgoaiNgu = hoSo._LstNgoaiNgu;
            this._LstTrinhDoNgoaiNgu = hoSo._LstTrinhDoNgoaiNgu;
            this._MucLuong = hoSo._MucLuong;
            this._MucTieuNgheNghiep = hoSo._MucTieuNgheNghiep;
            this._NamKinhNghiem = hoSo._NamKinhNghiem;
            this._ThanhTichNoiBat = hoSo._ThanhTichNoiBat;
            this._ThongTinLienHe = hoSo._ThongTinLienHe;
            this._LstThongTinThamKhao = hoSo._LstThongTinThamKhao;
            this._ViTriMongMuon = hoSo._ViTriMongMuon;
            this._NgayCapNhat = hoSo.NgayCapNhat;
        }

        public void UpdateThongTinChung(int namKinhNghiem, List<NgoaiNgu> lstNgoaiNgu, List<TrinhDoNgoaiNgu> lstTrinhDoNgoaiNgu, string viTriMongMuon,
            ChucVu chucVu, List<TinhThanh> lstNoiLamViec,
            List<NganhNghe> lstNganhNghe, float mucLuong, bool isChoPhepTimKiem)
        {
            this._ChucVu = chucVu;
            this._IsChoPhepTimKiem = isChoPhepTimKiem;
            this._LstNoiLamViec = lstNoiLamViec;
            this._LstNganhNghe = lstNganhNghe;
            this._LstNgoaiNgu = lstNgoaiNgu;
            this._MucLuong = mucLuong;
            this._NamKinhNghiem = namKinhNghiem;
            this._ViTriMongMuon = viTriMongMuon;
            this._LstTrinhDoNgoaiNgu = lstTrinhDoNgoaiNgu;            
        }
    }
}
